package com.ibeeking.gmc.job.core.biz.model;

import com.ibeeking.gmc.job.core.enums.ExecutorBlockStrategyEnum;
import com.ibeeking.gmc.job.core.enums.RouteStrategyEnum;
import com.ibeeking.gmc.job.core.glue.GlueTypeEnum;

import java.io.Serializable;

/**
 * 任务Info
 */
public class JobInfoParam extends BaseJobParam implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 任务执行CRON表达式
     */
    private String jobCron;

    /**
     * 任务描述
     */
    private String jobDesc;

    /**
     * 负责人
     */
    private String author;

    /**
     * 报警邮件
     */
    private String alarmEmail;

    /**
     * 执行器路由策略
     */
    private RouteStrategyEnum routeStrategyEnum;

    /**
     * jobName必填
     */
    private String jobName;

    /**
     * 执行器，任务参数
     */
    private String executorParam;

    /**
     * 阻塞处理策略
     */
    private ExecutorBlockStrategyEnum executorBlockStrategyEnum;

    /**
     * 任务执行超时时间，单位秒
     */
    private int executorTimeout;

    /**
     * 失败重试次数
     */
    private int executorFailRetryCount;

    /**
     * GLUE类型	#GlueTypeEnum
     */
    private GlueTypeEnum glueTypeEnum;

    /**
     * 子任务ID，多个逗号分隔
     */
    private String childJobId;

    /**
     * 调度状态：0-停止，1-运行
     */
    private int triggerStatus;

    public String getJobCron() {
        return jobCron;
    }

    public void setJobCron(String jobCron) {
        this.jobCron = jobCron;
    }

    public String getJobDesc() {
        return jobDesc;
    }

    public void setJobDesc(String jobDesc) {
        this.jobDesc = jobDesc;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getAlarmEmail() {
        return alarmEmail;
    }

    public void setAlarmEmail(String alarmEmail) {
        this.alarmEmail = alarmEmail;
    }

    public RouteStrategyEnum getRouteStrategyEnum() {
        return routeStrategyEnum;
    }

    public void setRouteStrategyEnum(RouteStrategyEnum routeStrategyEnum) {
        this.routeStrategyEnum = routeStrategyEnum;
    }

    public String getJobName() {
        return jobName;
    }

    public void setJobName(String jobName) {
        this.jobName = jobName;
    }

    public String getExecutorParam() {
        return executorParam;
    }

    public void setExecutorParam(String executorParam) {
        this.executorParam = executorParam;
    }

    public ExecutorBlockStrategyEnum getExecutorBlockStrategyEnum() {
        return executorBlockStrategyEnum;
    }

    public void setExecutorBlockStrategyEnum(ExecutorBlockStrategyEnum executorBlockStrategyEnum) {
        this.executorBlockStrategyEnum = executorBlockStrategyEnum;
    }

    public GlueTypeEnum getGlueTypeEnum() {
        return glueTypeEnum;
    }

    public void setGlueTypeEnum(GlueTypeEnum glueTypeEnum) {
        this.glueTypeEnum = glueTypeEnum;
    }

    public int getExecutorTimeout() {
        return executorTimeout;
    }

    public void setExecutorTimeout(int executorTimeout) {
        this.executorTimeout = executorTimeout;
    }

    public int getExecutorFailRetryCount() {
        return executorFailRetryCount;
    }

    public void setExecutorFailRetryCount(int executorFailRetryCount) {
        this.executorFailRetryCount = executorFailRetryCount;
    }

    public String getChildJobId() {
        return childJobId;
    }

    public void setChildJobId(String childJobId) {
        this.childJobId = childJobId;
    }

    public int getTriggerStatus() {
        return triggerStatus;
    }

    public void setTriggerStatus(int triggerStatus) {
        this.triggerStatus = triggerStatus;
    }
}
